const logger = require('@/loggerMiddleware');
// 捕获错误的中间件
const errorHandler = async (ctx, next) => {
    try {
        await next();
        logger.info('输出日志：' + `${ctx.method} ${ctx.url} - ${ctx.status}`);
    } catch (errorData) {
        logger.error('输出错误日志：' + errorData);
        console.log(errorData);
        if(errorData.Validate === null) {
            const {code, msg, error} = errorData;
            const errorVal = error || null;
            ctx.send(null, code, msg, errorVal);
        } else {
            // ctx.body = {
            //     msg: '服务器端异常错误',
            //     error: errorData.message || '异常错误，请查看服务器端日志',
            // }
            const error = errorData.message || '异常错误，请查看服务器端日志';
            const status = errorData.status || 500;
            ctx.send(null, '服务器端异常错误', status, error, status);
        }
        
    }
}

module.exports = errorHandler;